import sys
# import ctypes
from PySide6.QtWidgets import QApplication
from qt_backend import MainWindow


class UI:
    def __init__(self):
        # 初始化并启动应用程序
        self.app = QApplication(sys.argv)

        # 创建主窗口
        self.main_window = MainWindow()
        self.main_window.show()

        # 运行应用程序的事件循环
        self.app.exec()

    # 切换到主页并播放视频（空闲状态）
    def idle(self):
        self.main_window.switch_to_home()
        self.main_window.home_page.resume_video()

    # 进入工作状态，切换到已分类垃圾信息页面
    def working(self):
        self.main_window.switch_to_page(self.main_window.info_page)
        # 在工作过程中暂停视频
        self.main_window.home_page.pause_video()

    # 每处理完一个垃圾项时更新信息
    def one_garbage_in(self, garbage_id: int):
        # 调用 MainWindow 的更新函数以添加垃圾数据
        self.main_window.update_info_display(garbage_id)

    # 多个垃圾处理完毕后显示信息总结页面
    def summary(self):
        self.main_window.switch_to_page(self.main_window.info_page)

    # 当垃圾桶满载时显示提示
    def set_full(self):
        self.main_window.show_full_alert()


# 应用程序入口
# if __name__ == "__main__":
    # linux下还不知道怎么使用下面这种
    # 设置 Windows 任务栏图标的 AppUserModelID
    # ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("myappid")
    # ui = UI()
